Image rotation is a fundamental image processing task and the need to rotate images arises in many applications. Although “rotation” through 90-degree intervals is a relatively simple exercise, rotation by an arbitrary angle is more complex.
Rotation by a small arbitrary angle is often required in applications such as scanning, photocopying and facsimile transmission of documents. In these tasks, documents are imaged for reproduction in some form. It is common to observe document skew—that is, rotational misalignment of the output—as a result of incorrect document placement on the platen glass, shifting of the object while closing the scanner lid, or incorrect insertion into a sheet-feeder. The resulting skew makes the reproduction appear unprofessional and can also affect the performance of downstream tasks, such as Optical Character Recognition (OCR) operations. Skew correction improves the quality of scanned/copied documents; and the corrected document images are more useful for tasks such as archiving, modifying, collaborating, communicating, OCR or printing. Skew correction requires detection/estimation of the angular error of the input document followed by image rotation to correct that error. Rotation is therefore a necessary end step for skew correction as well as for geometric manipulation of document images in general.
Previous work on image rotation algorithms includes Michael Unser, Philippe Thévenaz, Leonid P. Yaroslavsky: “Convolution-based interpolation for fast, high-quality rotation of images”, IEEE Transactions on Image Processing 4(10): p 1371-1381, 1995. Unser et al. described image rotation with reduced complexity of order O(M×N), where M×N is the image size. That is, the complexity increases linearly with the number of pixels in the image. This is achieved by decomposing the rotation operation into three separable, one-dimensional shears along the horizontal and vertical directions, respectively.